package com.lc.yygh.hosp.repository;

import com.lc.yygh.model.hosp.Department;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface DepartmentRepository extends MongoRepository<Department,String> {
    //根据医院编号和科室编号查询一个科室
    Department findByHoscodeAndDepcode(String hoscode,String depcode);

    /*findByHoscodeAndDepcode方法是我们自己定义的，它不是底层封装好的方法，但是我们没有DepartmentRepository的
    * 实现类，即没有这个方法的业务逻辑，但是测试的时候确实能找到hoscode=?and depcode=?的数据，这是怎么回事呢？
    * 这里用到了SpringData 方法定义规范，就是继承MongoRepository的接口里的方法名要符合规范才能实现对mondodb数据库
    * 的操作，SpringData 方法定义规范有很多的关键字，And就是一个关键字，这个方法的类似sql语句的意思是：
    * ...where x.lastname=?1 and x.firstname=?2  ,所以方法名就可以体现查询的条件，你可以把方法名就看做sql语句，
    * 再比如HospitalRepository里的findByHosnameLike方法意思就是根据Hosname做模糊查询，Like也是一个关键字，
    * 所以学MongoRepository做CRUD的时候一定要记住哪些关键字(见资料)，根据关键字定义方法*/


}
